[iOS] Xcodeのデフォルトのヘッダーコメントのテンプレートを作成したい
こんにちは。きんくまです。
Xcodeで新規ファイルを作成すると、デフォルトでヘッダーコメントが挿入されます。
こんなやつです。
// // Hello.swift // SampleTarget // // Created by YourName on 2019/03/08 // Copyright © 2019 YourCompany. All rights reserved. //
これのテンプレートを差し替えたい! 検索したところ、こちらの記事が見つかりました。
Customizing the file header comment and other text macros in Xcode 9
どうやらXcodeの機能として用意されているみたいです。
IDETemplateMacros.plistを作る
まずは IDETemplateMacros.plist
という名前のxmlファイルを作ります。
Xcodeのメニューから plistファイルが作れます。
といいつつ、中身はxmlファイルなので、ファイル名とプロパティなどの項目さえ合っていればよく、初回のみXcodeで作って、あとは普通にテキストエディタで作れば良いと思います。
中身をこんな感じにすると、デフォルトで設定される項目が記述できると思います。
keyを FILEHEADER にして、あとは string のところにテンプレートを書きます。
たぶんデフォルトのやつ
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>FILEHEADER</key> <string> // ___FILENAME___ // ___TARGETNAME___ // // Created by ___USERNAME___ on ___DATE___ // ___COPYRIGHT___ //</string> </dict> </plist>
各変数については、後でご説明するとして、ファイルの置き場所は以下のドキュメントに書いてありました。
参照順 | 場所 | パス |
---|---|---|
1 | Project user data | [ProjectName].xcodeproj/xcuserdata/[username].xcuserdatad/IDETemplateMacros.plist |
2 | Project shared data | [ProjectName].xcodeproj/xcshareddata/IDETemplateMacros.plist |
3 | Workspace user data | [WorkspaceName].xcworkspace/xcuserdata/[username].xcuserdatad/IDETemplateMacros.plist |
4 | Workspace shared data | [WorkspaceName].xcworkspace/xcshareddata/IDETemplateMacros.plist |
5 | User Xcode data | ~/Library/Developer/Xcode/UserData/IDETemplateMacros.plist |
Xcodeは上の表で参照順の数値の少ない方から探していって、最初に見つかったものを使用します。
なので、5の~/Library ディレクトリにはデフォルトのものを置いておいて、必要があれば、1のところに追加で置くという運用もよいかなーと思います。
ちなみに1はxcodeprojの中なので、Finderのshow package contentsメニューから入れます。
マクロの変数について
マクロの変数は以下に一覧があります。
例えばファイル名だったら FILENAME
です。
ただし、埋め込む際は、左右に3つの連続したアンダースコアをつけたす必要があります。
___FILENAME___
という感じです。
変数を調整したい
変数を調整するときは、以下のドキュメントに書いてあります。
例えばファイル名から拡張子を取り除きたければこんな感じに :
の後に Modifier を書き足します。Modifier は ,
で複数追加できるみたいです。
___FILENAME:deletingPathExtension___
変数を追加したい
plistを適当にいじっていて気が付いたのですが、変数が定義できました。
plist内に以下のプロパティを追加すれば
<key>COMPANYNAME</key> <string>会社名ですよー</string>
フォーマット内に、こんな感じにかけます。
___COMPANYNAME___
フォーマットの注意
上のブログの記事にも書いてあったのですが、フォーマットを記述する際に注意点がありまして、
- 最初の行の // はXcodeが自動で追加するので不要
- 最後の行に自動で1行空の行(改行)が追加される
という挙動があります。
実際に作ってみよう
というわけで、サンプルで作ってみました。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>FILEHEADER</key> <string> // ___FILENAME:deletingPathExtension___ // // 作った人: わたしのなまえなのです // Copyright (c) ___YEAR___ ___COMPANYNAME___ //</string> <key>COMPANYNAME</key> <string>会社名ですよー</string> </dict> </plist>
上のやつは実際には、こんな感じに出力されました。
// // SampleFile // // 作った人: わたしのなまえなのです // Copyright (c) 2019 会社名ですよー //
まとめ
マクロの USERNAME
は macのログイン名だったりするので、USERNAME
を使わないで、plistファイルに直接書いてしまえば、いろいろとカスタマイズができますね!
xcuserdata
ディレクトリ は .gitignore
に指定されていたりすると思うので、ここに個人用設定を書いたり、xcshareddata
にプロジェクト共通の設定を置いたりする。といった運用もできるかなーと思います。
ではでは。